草庐IT

go - 包命名 : error exporting variable

全部标签

javascript - 如何在全局范围内使用 ES6 模块而不是命名空间?

在ES6中定义一个类时,它会在全局范围内可用,您可以使用新的ES6括号封闭来防止这种情况发生:{classCar{constructor(make){this.make=make;this.currentSpeed=25;}getSpeed(){console.log(this.make+'isgoing'+this.currentSpeed+'mph.');}}window.MYNAMESPACE.Car=Car;}我有多个js文件,每个文件都有自己的类定义,我通过MYNAMESPACE在全局范围内使这些类可用。因此从任何地方创建一辆新车看起来像:varmyCar=newMYNAME

javascript - 像 jQuery 中那样的命名空间普通 JavaScript 事件

在jQuery中,当您设置一个事件时,您可以为其命名空间。这意味着(如果您愿意)您可以有多个调整窗口大小的事件,例如,并且能够单独解除绑定(bind)它们而不解除绑定(bind)该选择器上的所有事件。jQuery命名空间示例:$(window).on('scroll.myScrollNamespace,function()...我想知道如何在纯JavaScript中创建命名空间。这显然行不通:window.addEventListener('resize.myScrollNamespace',function()... 最佳答案 如

javascript - 在 JavaScript 中创建命名空间/类类型结构的最优雅方式

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我正在尝试确定一种方法,该方法将为我提供最优雅的方式来将我的代码包装在Namespace/Unit中,例如对象。例如GoogleMapsAPI的vara=Google.Maps.Foo();,我认为它看起来很干净。我希望它包含(如果这是正确的术语)jQueryNoConflict$也签名。到目前为止,我喜欢://Toplevelcontainerforsu

javascript - 在 Javascript 中,什么时候需要将命名函数分配给变量?

在BabelJS的在线REPL(http://babeljs.io/repl/)中,当我输入:leta=(x)=>x+1它将被转译为:"usestrict";vara=functiona(x){returnx+1;};这里的vara=functiona(x)对我来说有点困惑,因为vara=function(x)或functiona(x)据我了解就足够了。有没有人知道何时以及为什么需要将命名函数分配给变量? 最佳答案 这里确实有两个不同的问题:定义或表达函数的不同方式有何区别?为什么leta=(x)=>x+1以这种方式转译?为了回答(

javascript - 没有全局命名空间污染的 javascript 的 Haxe?

此题只适用于Haxe我知道haxe有一段时间了,但直到昨天才真正接触过它。出于好奇,我决定移植showdown.js,markdown.pl的javascript端口,哈克。这非常简单,它生成的javascript似乎运行良好(编辑:如果您想实际查看它,请查看here)。但是,我注意到生成的代码会在全局命名空间中转储大量内容……更糟糕的是,它通过为未声明的标识符赋值而不使用var关键字,所以它们是全局的,即使你用闭包包装整个东西。例如……if(typeofjs=='undefined')js={}...Hash=function(p){if(p===$_)return;{...EReg

javascript - 命名空间内的构造函数

我读到为JavaScript项目创建命名空间有助于减少与其他库的冲突。我有一些代码包含许多不同类型的对象,我已经为其定义了构造函数。将它们也放在namespace中是否是一种好的做法?例如:varshapes={Rectangle:function(w,h){this.width=w;this.height=h;}};可以通过以下方式调用:varsquare=newshapes.Rectangle(10,10); 最佳答案 这通常是个好主意;此外,如果您的对象需要一组不应公开的共享函数,您可以将它们全部包装在一个闭包中,就像一个模块

javascript - 使用 data-template-name 命名 Ember.js 模板

我注意到Ember.js文档解释了命名模板的方法是通过设置标签的data-template-name模板名称的值。但在Ember.js文档站点上TomDale的最新截屏视频中,他使用ID命名模板。我假设它们都是在Ember中命名模板的有效方法。为什么要使用data-template-name与id相对应? 最佳答案 虽然两者都有效,但使用data-template-name可以让您自由使用不会与您的模板名称冲突的元素ID。 关于javascript-使用data-template-nam

go - 语言设计-没有长整数类型?

Closed.Thisquestionisopinion-based。它当前不接受答案。想改善这个问题吗?更新问题,以便editingthispost用事实和引用来回答。去年关闭。ImprovethisquestionGo具有以下数值类型:intint8int16int32int64uintuint8uint16uint32uint64为什么Go没有long数字类型? 最佳答案 不需要很长时间例如在C#中long表示带符号的64位整数只需使用int64int{8,16,32,64}-带符号的整数,大小为8,16,32,64位(int

go - 所有 Go 函数都返回 err 作为第二个返回值吗?

我看到很多代码片段是函数返回err作为最后一个参数。f,err:=strconv.ParseFloat(asciiFloat,64)问题是即使在函数实现中不涉及错误处理,也必须使所有函数都返回错误。我如何知道函数是否返回err值?我每次需要使用函数时都必须检查文档吗? 最佳答案 回答您的问题:幸运的是,Go可以防止某些类型的程序员错误。如果您忘记了函数返回的值之一,它不会让您编译程序。在Go中返回错误是一种很好的做法,请阅读EffectiveGo的错误部分|Libraryroutinesmustoftenreturnsomesort

go - 试图在 go 中计算 pi,我做错了什么? math.Cos 可能有问题?

我在直径为1的圆内画一个正方形,正方形的对角线就是圆的直径。然后我将这个正方形分成4个直角三角形,使用余弦定律并知道三角形上a和b的长度为0.5,我创建了4个三角形,它们的斜边加在一起形成正方形的周长。给我们方程周长=边数*(a^2+b^2-2abcos(360/边数))通过增加这个形状的边数,周长越来越接近圆的周长(3.14).我以前在python中做过这个,并且它有效,但是在python中使用余弦法而不是rad存在问题,这把它搞砸了。packagemainimport"fmt"import"math"funcmain(){forn:=float64(4);n==n;n*=2{fmt